{{ pz.brief }}
{{ fileP.name }} is not on disk. openInputFile returns false and records why in errorMsg.
The name itself is rejected before any file is touched.
{{ hint.body }}
{{ draw.text }}
On the APE, every tester Main ends with its expected output as a comment. You just ran it, then diffed your prediction against that comment. That is the whole workflow.